// 角色状态机，管理当前状态，负责状态切换 + 调用当前状态 Update
public class CharacterStateMachine<T> where T : CharacterBase<T>
{
    // 当前状态
    public CharacterState<T> CurrentState { get; private set; }
    // 初始化状态机，设置初始状态
    public void Initialize(CharacterState<T> startingState,CharacterAnimation anim)
    {
        CurrentState = startingState;
        CurrentState.Enter(); // 调用初始状态的 Enter() 方法
    }

    // 切换状态
    public void ChangeState(CharacterState<T> newState)
    {
        CurrentState?.Exit(); // 当前状态退出
        CurrentState = newState;
        CurrentState.Enter(); // 新状态进入
    }

    // 每帧调用（在 PlayerController 里调用这个）
    public void Update()
    {
        CurrentState?.Update();
    }

    // 每帧物理调用（FixedUpdate 里调用）
    public void FixedUpdate()
    {
        CurrentState?.FixedUpdate();
    }
}
